home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / cross / Avr.lha / Atmel / ATMEL_DATA / ATMEL_INSTRUCTION_SET.TXT next >
Text File  |  1999-03-15  |  12KB  |  136 lines

  1. AT90S2313 Instruction Set Summary
  2.  
  3. Mnem  Oper     Description                            Operation                          Flags #Clocks
  4.  
  5. ARITHMETIC AND LOGIC INSTRUCTIONS
  6.  
  7. ADD   Rd, Rr   Add two Registers                      Rd > Rd + Rr                       Z,C,N,V,H  1
  8. ADC   Rd, Rr   Add with Carry two Registers           Rd > Rd + Rr + C                   Z,C,N,V,H  1
  9. ADIW  Rdl,K    Add  Immediate to Word                 Rdh:Rdl ¬ Rdh:Rdl + K              Z,C,N,V,S  2
  10. SUB   Rd, Rr   Subtract two Registers                 Rd > Rd - Rr                       Z,C,N,V,H  1
  11. SUBI  Rd, K    Subtract Constant from Register        Rd > Rd - K                        Z,C,N,V,H  1
  12. SBIW  Rdl,K    Subtract Immediate from Word           Rdh:Rdl ¬ Rdh:Rdl - K              Z,C,N,V,S  2
  13. SBC   Rd, Rr   Subtract with Carry two Registers      Rd > Rd - Rr - C                   Z,C,N,V,H  1
  14. SBCI  Rd, K    Subtract with Carry Constant from Reg. Rd > Rd - K - C                    Z,C,N,V,H  1
  15. AND   Rd, Rr   Logical AND Registers                  Rd > Rd · Rr                       Z,N,V      1
  16. ANDI  Rd, K    Logical AND Register and Constant      Rd > Rd · K                        Z,N,V      1
  17. OR    Rd, Rr   Logical OR Registers                   Rd > Rd v Rr                       Z,N,V      1
  18. ORI   Rd, K    Logical OR Register and Constant       Rd > Rd v K                        Z,N,V      1
  19. EOR   Rd, Rr   Exclusive OR Registers                 Rd > Rd Å Rr                       Z,N,V      1
  20. COM   Rd       One's Complement                       Rd > $FF - Rd                      Z,C,N,V    1
  21. NEG   Rd       Two's Complement                       Rd > $00 - Rd                      Z,C,N,V,H  1
  22. SBR   Rd,K     Set Bit(s) in Register                 Rd > Rd v K                        Z,N,V      1
  23. CBR   Rd,K     Clear Bit(s) in Register               Rd > Rd · ($FF - K)                Z,N,V      1
  24. INC   Rd       Increment                              Rd > Rd + 1                        Z,N,V      1
  25. DEC   Rd       Decrement                              Rd > Rd - 1                        Z,N,V      1
  26. TST   Rd       Test for Zero or Minus                 Rd > Rd · Rd                       Z,N,V      1
  27. CLR   Rd       Clear Register                         Rd > Rd Å Rd                       Z,N,V      1
  28. SER   Rd       Set Register                           Rd > $FF                           None       1
  29.  
  30. BRANCH INSTRUCTIONS
  31.  
  32. RJMP  k        Relative Jump                          PC ¬ PC + k + 1                    None       2
  33. IJMP           Indirect Jump to (Z)                   PC ¬ Z                             None       2
  34. RCALL k        Relative Subroutine Call               PC ¬ PC + k + 1                    None       3
  35. ICALL          Indirect Call to (Z)                   PC ¬ Z                             None       3
  36. RET            Subroutine Return                      PC ¬ STACK                         None       4
  37. RETI           Interrupt Return                       PC ¬ STACK                            I       4
  38. CPSE  Rd,Rr    Compare, Skip if Equal                 if (Rd = Rr) PC ¬ PC + 2 or 3      None     1/2
  39. CP    Rd,Rr    Compare                                Rd - Rr                            Z,N,V,C,H  1
  40. CPC   Rd,Rr    Compare with Carry                     Rd - Rr - C                        Z,N,V,C,H  1
  41. CPI   Rd,K     Compare Register with Immediate        Rd - K                             Z,N,V,C,H  1
  42. SBRC  Rr, b    Skip if Bit in Register Cleared        if(Rr(b)=0) PC ¬ PC + 2 or 3       None     1/2
  43. SBRS  Rr, b    Skip if Bit in Register is Set         if(Rr(b)=1) PC ¬ PC + 2 or 3       None     1/2
  44. SBIC  P, b     Skip if Bit in I/O Register Cleared    if(P(b)=0) PC ¬ PC + 2 or 3        None     1/2
  45. SBIS  P, b     Skip if Bit in I/O Register is Set     if(R(b)=1) PC ¬ PC + 2 or 3        None     1/2
  46. BRBS  s, k     Branch if Status Flag Set              if(SREG(s) = 1) then PC¬PC + k + 1 None     1/2
  47. BRBC  s, k     Branch if Status Flag Cleared          if(SREG(s) = 0) then PC¬PC + k + 1 None     1/2
  48. BREQ  k        Branch if Equal                        if(Z = 1) then PC ¬ PC + k + 1     None     1/2
  49. BRNE  k        Branch if Not Equal                    if(Z = 0) then PC ¬ PC + k + 1     None     1/2
  50. BRCS  k        Branch if Carry Set                    if(C = 1) then PC ¬ PC + k + 1     None     1/2
  51. BRCC  k        Branch if Carry Cleared                if(C = 0) then PC ¬ PC + k + 1     None     1/2
  52. BRSH  k        Branch if Same or Higher               if(C = 0) then PC ¬ PC + k + 1     None     1/2
  53. BRLO  k        Branch if Lower                        if(C = 1) then PC ¬ PC + k + 1     None     1/2
  54. BRMI  k        Branch if Minus                        if(N = 1) then PC ¬ PC + k + 1     None     1/2
  55. BRPL  k        Branch if Plus                         if(N = 0) then PC ¬ PC + k + 1     None     1/2
  56. BRGE  k        Branch if Greater or Equal, Signed     if(N Å V= 0) then PC ¬ PC + k + 1  None     1/2
  57. BRLT  k        Branch if Less Than Zero, Signed       if(N Å V= 1) then PC ¬ PC + k + 1  None     1/2
  58. BRHS  k        Branch if Half Carry Flag Set          if(H = 1) then PC ¬ PC + k + 1     None     1/2
  59. BRHC  k        Branch if Half Carry Flag Cleared      if(H = 0) then PC ¬ PC + k + 1     None     1/2
  60. BRTS  k        Branch if T Flag Set                   if(T = 1) then PC ¬ PC + k + 1     None     1/2
  61. BRTC  k        Branch if T Flag Cleared               if(T = 0) then PC ¬ PC + k + 1     None     1/2
  62. BRVS  k        Branch if Overflow Flag is Set         if(V = 1) then PC ¬ PC + k + 1     None     1/2
  63. BRVC  k        Branch if Overflow Flag is Cleared     if(V = 0) then PC ¬ PC + k + 1     None     1/2
  64. BRIE  k        Branch if Interrupt Enabled            if( I = 1) then PC ¬ PC + k + 1    None     1/2
  65. BRID  k        Branch if Interrupt Disabled           if( I = 0) then PC ¬ PC + k + 1    None     1/2
  66.  
  67. Mnem  Oper     Description                            Operation                          Flags #Clocks
  68.  
  69. DATA TRANSFER INSTRUCTIONS
  70.  
  71. MOV   Rd, Rr   Move Between Registers                 Rd ¬ Rr                            None    1
  72. LDI   Rd, K    Load Immediate                         Rd ¬ K                             None    1
  73. LD    Rd, X    Load Indirect                          Rd ¬ (X)                           None    2
  74. LD    Rd, X+   Load Indirect and Post-Inc.            Rd ¬ (X), X ¬ X + 1                None    2
  75. LD    Rd, - X  Load Indirect and Pre-Dec.             X ¬ X - 1, Rd ¬ (X)                None    2
  76. LD    Rd, Y    Load Indirect                          Rd ¬ (Y)                           None    2
  77. LD    Rd, Y+   Load Indirect and Post-Inc.            Rd ¬ (Y), Y ¬ Y + 1                None    2
  78. LD    Rd, - Y  Load Indirect and Pre-Dec.             Y ¬ Y - 1, Rd ¬ (Y)                None    2
  79. LDD   Rd,Y+q   Load Indirect with Displacement        Rd ¬ (Y + q)                       None    2
  80. LD    Rd, Z    Load Indirect                          Rd ¬ (Z)                           None    2
  81. LD    Rd, Z+   Load Indirect and Post-Inc.            Rd ¬ (Z), Z ¬ Z+1                  None    2
  82. LD    Rd, -Z   Load Indirect and Pre-Dec.             Z ¬ Z - 1, Rd ¬ (Z)                None    2
  83. LDD   Rd, Z+q  Load Indirect with Displacement        Rd ¬ (Z + q)                       None    2
  84. LDS   Rd, k    Load Direct from SRAM                  Rd ¬ (k)                           None    3
  85. ST    X, Rr    Store Indirect                         (X) ¬ Rr                           None    2
  86. ST    X+, Rr   Store Indirect and Post-Inc.           (X) ¬ Rr, X ¬ X + 1                None    2
  87. ST    - X, Rr  Store Indirect and Pre-Dec.            X ¬ X - 1, (X) ¬ Rr                None    2
  88. ST    Y, Rr    Store Indirect                         (Y) ¬ Rr                           None    2
  89. ST    Y+, Rr   Store Indirect and Post-Inc.           (Y) ¬ Rr, Y ¬ Y + 1                None    2
  90. ST    - Y, Rr  Store Indirect and Pre-Dec.            Y ¬ Y - 1, (Y) ¬ Rr                None    2
  91. STD   Y+q,Rr   Store Indirect with Displacement       (Y + q) ¬ Rr                       None    2
  92. ST    Z, Rr    Store Indirect                         (Z) ¬ Rr                           None    2
  93. ST    Z+, Rr   Store Indirect and Post-Inc.           (Z) ¬ Rr, Z ¬ Z + 1                None    2
  94. ST    -Z, Rr   Store Indirect and Pre-Dec.            Z ¬ Z - 1, (Z) ¬ Rr                None    2
  95. STD   Z+q,Rr   Store Indirect with Displacement       (Z + q) ¬ Rr                       None    2
  96. STS   k, Rr    Store Direct to SRAM                   (k) ¬ Rr                           None    3
  97. LPM            Load Program Memory                    R0 ¬ (Z)                           None    3
  98. IN    Rd, P    In Port                                Rd ¬ P                             None    1
  99. OUT   P, Rr    Out Port                               P ¬ Rr                             None    1
  100. PUSH  Rr       Push Register on Stack                 STACK ¬ Rr                         None    2
  101. POP   Rd       Pop Register from Stack                Rd ¬ STACK                         None    2
  102.  
  103. BIT AND BIT-TEST INSTRUCTIONS
  104.  
  105. SBI   P,b      Set Bit in I/O Register                I/O(P,b) ¬ 1                       None    2
  106. CBI   P,b      Clear Bit in I/O Register              I/O(P,b) ¬ 0                       None    2
  107. LSL   Rd       Logical Shift Left                     Rd(n+1) ¬ Rd(n), Rd(0) ¬ 0         Z,C,N,V 1
  108. LSR   Rd       Logical Shift Right                    Rd(n) ¬ Rd(n+1), Rd(7) ¬ 0         Z,C,N,V 1
  109. ROL   Rd       Rotate Left Through Carry              Rd(0)¬C,Rd(n+1)¬ Rd(n),C¬Rd(7)     Z,C,N,V 1
  110. ROR   Rd       Rotate Right Through Carry             Rd(7)¬C,Rd(n)¬ Rd(n+1),C¬Rd(0)     Z,C,N,V 1
  111. ASR   Rd       Arithmetic Shift Right                 Rd(n) ¬ Rd(n+1), n=0..6            Z,C,N,V 1
  112. SWAP  Rd       Swap Nibbles                           Rd(3.0)¬Rd(7.4),Rd(7.4)¬Rd(3.0)    None    1
  113. BSET  s        Flag Set                               SREG(s) ¬ 1                        SREG(s) 1
  114. BCLR  s        Flag Clear                             SREG(s) ¬ 0                        SREG(s) 1
  115. BST   Rr, b    Bit Store from Register to T           T ¬ Rr(b)                          T       1
  116. BLD   Rd, b    Bit load from T to Register            Rd(b) ¬ T                          None    1
  117. SEC            Set Carry                              C ¬ 1                              C       1
  118. CLC            Clear Carry                            C ¬ 0                              C       1
  119. SEN            Set Negative Flag                      N ¬ 1                              N       1
  120. CLN            Clear Negative Flag                    N ¬ 0                              N       1
  121. SEZ            Set Zero Flag                          Z ¬ 1                              Z       1
  122. CLZ            Clear Zero Flag                        Z ¬ 0                              Z       1
  123. SEI            Global Interrupt Enable                I ¬ 1                              I       1
  124. CLI            Global Interrupt Disable               I ¬ 0                              I       1
  125. SES            Set Signed Test Flag                   S ¬ 1                              S       1
  126. CLS            Clear Signed Test Flag                 S ¬ 0                              S       1
  127. SEV            Set Twos Complement Overflow           V ¬ 1                              V       1
  128. CLV            Clear Twos Complement Overflow         V ¬ 0                              V       1
  129. SET            Set T in SREG                          T ¬ 1                              T       1
  130. CLT            Clear T in SREG                        T ¬ 0                              T       1
  131. SEH            Set Half Carry Flag in SREG            H ¬ 1                              H       1
  132. CLH            Clear Half Carry Flag in SREG          H ¬ 0                              H       1
  133. NOP            No Operation                                                              None    1
  134. SLEEP          Sleep (see specific descr. for Sleep function)                            None    3
  135. WDR            Watchdog Reset (see specific descr. for WDR/timer)                        None    1
  136.